package com.zzy.service;

import com.zzy.model.Depart;
import com.zzy.model.DepartVo;
import com.zzy.model.User;
import org.hibernate.Criteria;

import java.util.List;

/**
 * 用户接口
 * @author zzy
 *
 */
public interface DepartService {
    /**
     * 根据HQL和条件
     * 获取User实体
     * @param hql
     * @param param
     * @return
     */
    public Depart getUnique(String hql, Object param[]);
    /**
     * 根据UID获取用户实体
     * @param id
     * @return Depart
     */
    public Depart getByID(String id);
    /**
     * 分页获取 用户 列表
     * @param hql
     * @param param
     * @param page
     * @param rows
     * @return List<Depart>
     */
    public List<Depart> getPage(String hql, Object param[], Integer page, Integer rows);
    public List<Depart> getPage(Criteria cr, Integer page, Integer rows);
    public List<Depart> getList(String hql, Object param[]);
    public List<Depart> getList(Criteria cr);

    public List<DepartVo> getTree(String parentId);
    public String getTreeHtml(String parentId);
    /**
     * 获取List的条数
     * "select count(*) from Depart where ... "
     *
     */
    public Integer getTotalNum(String hql, Object param[]);

    /**
     * 添加新用户
     * 1成功-1失败
     * @param Depart
     * @return int
     */
    public Integer save(Depart Depart);
    /**
     * 根据Uid删除用户
     * 1成功-1失败
     * @param id
     * @return int
     */
    public Integer del(String id);
    public Integer delTree(String id);
    /**
     * 更新
     * 1成功-1失败
     * @param Depart
     * @return int
     */
    public Integer update(Depart Depart);
    /**
     * 保存或者更新
     * 1成功-1失败
     * @param Depart
     * @return int
     */
    public Integer saveOrUpdate(Depart Depart);


    /** 根据 部门ID 获取部门下的所有人 方法暂时未完善*/
    public List<User> getUserByDepartID(String departid);
    /** 根据 部门ID 获取部门下的所有人 方法暂时未完善*/
    public String getUserIDSByDepartID(String departid);

}

